package com.ruicar.afs.cloud.basic.proceeds.pay.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruicar.afs.cloud.common.core.entity.BaseEntity;
import com.ruicar.afs.cloud.common.modules.contract.enums.PaymentRecordEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.PaymentStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author: Lee
 * @date 2020-05-29 09:31:34 
 * @description 付款记录
 */
@Data
@Accessors(chain = true)
@TableName(value ="basic_payment_record", autoResultMap = true)
public class BasicPaymentRecord extends BaseEntity<BasicPaymentRecord> {

	/** 付款池id */
	@ApiModelProperty("付款池id")
	private Long poolId;
	/** 付款银行 */
	@ApiModelProperty("付款银行")
	private String paymentBankCode;
	/** 付款账号 */
	@ApiModelProperty("付款账号")
	private String paymentAccount;
	/** 付款账户名称 */
	@ApiModelProperty("付款账户名称")
	private String paymentAccountName;
	/** 付款金额 不可为负数 */
	@ApiModelProperty("付款金额 不可为负数")
	private BigDecimal paymentAmt;
	/** 收款银行（总行） */
	@ApiModelProperty("收款银行（总行）")
	private String receiptBankCode;
	/** 收款银行名称（分支行） */
	@ApiModelProperty("收款银行名称（分支行）")
	private String receiptBankName;
	/** 收款银行电子联行号（分支行） */
	@ApiModelProperty("收款银行电子联行号（分支行）")
	private String receiptEbankCode;
	/** 收款账号 */
	@ApiModelProperty("收款账号")
	private String receiptAccount;
	/** 收款账户名称 */
	@ApiModelProperty("收款账户名称")
	private String receiptAccountName;
	/** 发送付款时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("发送付款时间")
	private Date operateTime;
	/** 记录状态 枚举值：付款待发送，付款发送成功，付款发送失败，付款结果查询失败，付款结果查询成功，记录失效 */
	@ApiModelProperty("记录状态 枚举值：付款待发送，付款发送成功，付款发送失败，付款结果查询失败，付款结果查询成功，记录失效")
	private PaymentRecordEnum status;
	/** 付款结果 枚举值：付款成功，付款失败 */
	@ApiModelProperty("付款结果 枚举值：付款成功，付款失败")
	private PaymentStatusEnum paymentResult;
	/** 付款结果反馈时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("付款结果反馈时间")
	private Date callBackTime;
	/** 付款反馈信息 */
	@ApiModelProperty("付款反馈信息")
	private String callBackMsg;
	/** 备注 */
	@ApiModelProperty("备注")
	private String remarks;

}
